package cn.melon.bz;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 线程及socket管理类, 此类中的变量均为静态变量
 * @author corvo
 */
public class ClientThreadMgr {
    
    private static Map<String, ClientThread> clientThreadPool = new LinkedHashMap<String, ClientThread>();
    
    /**
     * 向线程池中添加客户端socket线程, 每个客户端对应一个线程
     * @param no        学号
     * @param serverClientThread    客户端对应线程
     */
    public synchronized static void add(String no, ClientThread serverClientThread) {
        clientThreadPool.put(no, serverClientThread);
    }
    
    /**
     * 移除线程池中对应的线程
     * @param cardNum 客户端学号信息
     * @return 返回线程
     */
    public synchronized static ClientThread remove(String cardNum) {
        return clientThreadPool.remove(cardNum);
    }

    /**
     * 返回线程池中对应的线程
     * @param cardNum 返回学号信息
     * @return 线程对象
     */
    public synchronized static ClientThread get(String cardNum) {
        ClientThread cts = clientThreadPool.get(cardNum);
        return cts;
    }

    /**
     * 获取本线程池对象
     * @return 返回线程池
     */
    public synchronized static Map<String, ClientThread> getPool() {
        return clientThreadPool;
    }
}
